# 应用启动模块

import asyncio
from utils.logger import logger
from api.video_downloader import check_youget, YOU_GET_AVAILABLE, scheduler

# 导入文档API以获取文档列表
from api.documentation import get_document_list

# 初始化文档列表变量
documents = []

# 获取文档列表
async def get_docs():
    docs_data = await get_document_list()
    return docs_data.get("documents", [])

# 应用启动事件处理
async def startup_event():
    # 初始化日志系统
    logger.info("LiberTool应用启动")
    
    # 异步加载文档列表
    global documents
    documents = await get_docs()
    logger.info(f"已加载 {len(documents)} 个文档")
    
    # 检查you-get依赖
    try:
        # 首先检查模块是否成功导入
        if not YOU_GET_AVAILABLE:
            logger.critical("you-get模块导入失败，视频下载功能将不可用")
            logger.warning("请检查you-get模块安装，可能需要重新安装: pip install you-get==0.4.1650")
        elif not check_youget():
            logger.critical("you-get模块检查失败，视频下载功能将不可用")
        else:
            logger.info("you-get模块检查通过")
    except Exception as e:
        logger.critical(f"启动失败: {str(e)}")
        # 不抛出异常，允许应用继续启动，但视频下载功能将不可用
    
    # 启动视频下载器调度器
    if not scheduler.running:
        scheduler.start()